iT邦幫忙

2017 iT 邦幫忙鐵人賽
DAY 19
0
自我挑戰組

30 days JSP & Servlet學習紀錄 系列 第 19

[Day 19 ] 標準動作建立JSP

  • 分享至 

  • xImage
  •  

前言

今天要來簡單介紹
在JSP中,只用標準化動作來轉謝JSP的幾種方式
(已就是不使用Scripting的方法)
這一張其實提到了javabean和EL
今天先對標準動作做簡單的整理

標準化動作

藉由這些標準化動作
可以讓JSP頁面不會有Scripting的程式
一可以去做基本的存取
達到好維護的便利性
也增加網頁開發人員開發時可以不須理解java程式

Scripting的程式 = Scriptlet,宣告以及運算式

相關動作如下:

  • useBean
    定義:宣告及初始化bean屬性
    若在指定的範圍內找不到相關的屬性,則自己會建立一個新的

    //使用bean一定宣告
    //scope定義這個bean要屬於哪個範圍(application,page,request,session)default為page
    <jsp:useBean id="student" class="com.student" scope="request" />
    
  • getProperty
    定義:取得bean屬性的某個特性值
    可以取得bean class裡面具有getter和setter的屬性值

    <jsp:getProperty property="name" name="student"/>
    
  • setProperty
    定義:設定bean屬性的某個特性值
    可以取得bean class裡面具有getter和setter的屬性值

    <jsp:setProperty property="name" name="student" value="Zarek"/>
    
  • usebean Body
    定義:可根據情況而去處理是否該執行
    只有在找不到Bean而且建立新的bean時
    才會去執行該區段的程式碼

    <jsp:useBean id="student" class="com.student" scope="request">
    //body
     <jsp:setProperty property="name" name="student" value="Zarek"/>
    </jsp:useBean>
    
  • type屬性
    定義:提供產生polymorphic的bean參考方式
    type可以是類別,抽象類別或是interface

    //type指得是student這個抽象類別,但是用另一個highschool去實做
    <jsp:useBean id="student" type="com.student" class="com.highschool" scope="request" />
    

    若使用type但沒有宣告class
    會根據呼叫的bean物件是否有存在
    若有存在則正常運作,若無則會拋出錯誤

    如果有type而沒有clas,bean物件必須已經存在於指定得作用域中。
    如果有class(不管有無type),class不能是抽象的
    而且必須提供公用的無參數建構式

    type => 參考型別 =>用來宣告參考的(可以為抽象)
    class => 物件型別 =>用來宣告物件(必須為具體)

  • param屬性
    因有時候會直接在JSP使用action呼叫另一支JSP
    而不是透過Servlet,這時就會需要取得前端的欄位值
    再丟到bean

    定義:提供將request的參數值給特定的bean

    表示法1

    //userID就是在html 的form裡面的name元素值
    <jsp:useBean id="student" class="com.student" scope="request">
        <jsp:setProperty property="name" name="student" param="userID"/>
    </jsp:useBean>
    

    表示法2
    直接讓input欄位的名稱與bean的特性名稱相同

    
    //這樣的寫法,會將前端input裡的name元素內容
    //set到property的值為name的特性名稱
    //property可以用*代替,將只要有符合地都set過去
    <jsp:useBean id="student" class="com.student" scope="request">
        <jsp:setProperty property="name" name="student"/>
    </jsp:useBean>
    

小節

今天先整理一下javaBean的部分
明天會繼續提到為什麼會需要用EL的原因
以及其介紹


上一篇
[Day 18] JSP簡介 part2
下一篇
[Day 20] Expression Language (EL)筆記
系列文
30 days JSP & Servlet學習紀錄 30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言